Git Push Fails 您所在的位置:网站首页 git remote end hung up Git Push Fails

Git Push Fails

2024-03-26 01:04| 来源: 网络整理| 查看: 265

Symptoms

When users try to run "git push" the following error message is shown:

$ git push Counting objects: 2332669, done. Delta compression using up to 16 threads. Compressing objects: 100% (360818/360818), done. error: RPC failed; result=22, HTTP code = 411 fatal: The remote end hung up unexpectedly Writing objects: 100% (2332669/2332669), 483.30 MiB | 114.26 MiB/s, done. Total 2332669 (delta 1949888), reused 2330461 (delta 1949349) fatal: The remote end hung up unexpectedly Cause

The "Smart HTTP" protocol in Git uses "Transfer-Encoding: chunked" in POST requests when it contains packed objects greater than 1MB in size.

Some proxy servers, like Nginx, do not support this transfer encoding by default, and the requests will be rejected before they get to Stash. Because of this, the Stash logs will not show any extra information.

Workaround

When pushing a large amount of data (initial push of a big repository, change with very big file(s)) may require a higher http.postBuffer setting on your git client (not the server). From https://www.kernel.org/pub/software/scm/git/docs/git-config.html

http.postBuffer

Maximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote system. For requests larger than this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used to avoid creating a massive pack file locally. Default is 1 MiB, which is sufficient for most requests.

Configuration on your reverse proxy. Usually ngnix the parameter client_max_body_size is a blocker. The reverse proxy may also have a connection timeout that's closing the connection (e.g. TimeOut or ProxyTimeout in apache, proxy_read_timeout in ngnix). Try bypassing the proxy by pushing directly to Stash IP:port. If this works, it's highly likely that the proxy server is causing the early disconnect and needs to be tuned.User is using an outbound proxy on his machine that is causing the issue.Resolution

Increase the Git buffer size to the largest individual file size of your repo:

git config --global http.postBuffer 157286400

Refer to the resolution of Git push fails - client intended to send too large chunked body for ngnix reverse proxy configuration. Increase this parameter to the largest individual file size of your repo.

Bypass the outbound proxy as explained on Can't clone or pull due to a git outbound proxy

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有